---
title: Spring中的设计模式
description: Spring框架中设计模式的实际应用分析
sidebar_position: 1
---

# Spring中的设计模式应用

## Spring 中工厂模式的应用
**Spring 的设计理念**
Spring 是面向 Bean 的编程（BOP：Beans Oriented Programming），Bean 在 Spring 中是真正的主角。Bean 在 Spring 中的作用就像 Object 对 OOP 的意义一样。
Spring 提供了 IOC 容器通过配置文件或者注解的方式来管理对象之间的依赖关系。

控制反转（Inversion of Control，缩写为 IOC），是面向对象编程中的一种设计原则，可以用来降低代码之间的耦合度。其中最常见的实现方式叫做依赖注入（Dependency Injection，简称 DI），还有一种方式叫做依赖查找（Dependency Lookup）。通过控制反转，对象在被创建的时候，由一个调控系统内所有对象的外界实体，将其所依赖的对象的引用传递给它。

### Spring 中的 Bean 组件
Bean 组件定义在 Spring 的 org.springframework.beans 包下，解决了以下几个问题：
* Bean 的定义
* Bean 的创建： 使用反射创建
* Bean 的解析
Spring Bean 的创建是典型的工厂模式，它的顶级接口是 BeanFactory


![](https://wkq-img.oss-cn-chengdu.aliyuncs.com/site/20250914224733.png)

1. 工厂模式
   - BeanFactory
   - FactoryBean
   - 自动装配

2. 单例模式
   - Bean作用域
   - 注册表实现
   - 线程安全

## 结构型模式
1. 代理模式
   - AOP实现
   - 事务代理
   - 远程代理

2. 装饰器模式
   - Wrapper类
   - IO流处理
   - 请求响应包装

## 行为型模式
1. 观察者模式
   - 事件机制
   - 监听器模式
   - 消息发布

2. 模板方法模式
   - JdbcTemplate
   - TransactionTemplate
   - RestTemplate
